package taller.clienteweb.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import taller.clienteweb.model.BusinessDelegate;
import taller.dataLayer.vo.ItemCotizacionVO;
import taller.dataLayer.vo.RodamientoVO;

public class BuscarRodamiento extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public BuscarRodamiento() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String codigo = request.getParameter("data[codigo]");
		//System.out.println(codigo);
		RodamientoVO rvo = new RodamientoVO();
		rvo.setCodigo(codigo);
		rvo = BusinessDelegate.getInstance().buscarRodamiento(rvo);
		
		if (rvo != null) {
			ItemCotizacionVO ultimaCotizacion = BusinessDelegate.getInstance().buscarUltimaCotizacion(rvo);
			
			if (ultimaCotizacion != null) {
				rvo.setUltimoPrecioCotazido(ultimaCotizacion.getPrecioUnitario());
				rvo.setFechaVigenciaHasta(ultimaCotizacion.getFechaVigenciaHasta());
			}
		}
		
		JSONObject jsonResponse = serializeToJSON(rvo);
		response.setContentType("text/json");
		response.setCharacterEncoding("ISO-8859-1");
		ServletOutputStream out = response.getOutputStream();
		out.print(jsonResponse.toString());
		out.flush();
		out.close();
	}
	
	private JSONObject serializeToJSON(RodamientoVO rod) {
		JSONObject jsonObject = new JSONObject();
		if ( rod == null ){
			jsonObject.put("codigo", "");
		}else{
			jsonObject.put("codigo", rod.getCodigo());
			jsonObject.put("caracteristica", rod.getCaracteristica());
			jsonObject.put("descripcion", rod.getDescripcion());
			jsonObject.put("marca", rod.getMarca());
			jsonObject.put("origen", rod.getOrigen());
			jsonObject.put("ultimaCotizacion", rod.getUltimoPrecioCotazido() != null ? rod.getUltimoPrecioCotazido() : "");
			
			String sFecha = "";
			if (rod.getFechaVigenciaHasta()!= null) {
				SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
				sFecha = sdf.format(rod.getFechaVigenciaHasta());
			}
			jsonObject.put("vigenciaHasta", sFecha);
		}
		return jsonObject;
	}

}
